#ifndef LINKLIST_H
#define LINKLIST_H
#include <iostream>
#include <vector>
#include <string>
#include <initializer_list>
using namespace std;
/**
* @brief 定义一个单项链表的节点
*/
template<class T>
struct Node{
    Node* next;
    T data;
    Node():next(nullptr){};
    Node(T data):data(data),next(nullptr){}；
};


template<class T>
class LinkList{
    public:
    //如何使用{}初始化？std::initializer_list<T> V
    Linklist();
    ~Linklist();
    remove(Node<T>* p); //s删除某个节点，
    remove(int index);
    insert(int index,T data);
    insert(T data);//尾插入
    void reverse();
    void print();
    int getSize();
    int find(T data);
    int vectortolist(vector<T>& v);
    int listtovector(vector<T>& v);
    void printList();
    T operator[](int index);
    ostream &operator<<(ostream &os);
    private:
        Node* head;
        int size;
}

#endif